<?php
	require_once ("RegistrationView.php");
	require_once ("RegistrationModel.php");
		
	//require_once ("Captcha/Captcha.php");
	
	class RegistrationController{	
		public function DoControl(Database $db){
			$reg_view = new RegistrationView();
			$reg_model = new RegistrationModel($db);
			$reg_message = RegistrationView::REG_NO_MESSAGE;
			//$reg_captcha = new Captcha();
			//$gen_captcha = $reg_captcha->GenerateImage();
			
			// Kontrollerar om användaren har klickat på Register-knappen.
			if ($reg_view->TriedToInsert()){
				// Kontrollerar om användaren matar in ett användarnamn som redan finns i databasen.
				if($reg_model->DoMatch($reg_view->GetRegUsername()) == true){				
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_USER_EXISTS);
				// Kontrollerar om inmatat användarnamn följer valideringsmönstret.			
				}else if($reg_model->ValidateUsername($reg_view->GetRegUsername()) == false){				
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_USER_WRONG_INPUT);
				// Kontrollerar om inmatat lösenord följer valideringsmönstret.			
				}else if($reg_model->ValidatePassword($reg_view->GetRegPassword()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_PASS_WRONG_INPUT);
				// Kontrollerar om inmatat lösenord matchar bekräftelsen.			
				}else if($reg_model->ConfirmPassword($reg_view->GetRegConfirm()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_NO_MATCH);
				// Kontrollerar om inmatad e-post följer valideringsmönstret.
				}else if($reg_model->ValidateMail($reg_view->GetRegMail()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_MAIL_WRONG_INPUT);
				// Kontrollerar om inmatad födelsedag följer valideringsmönstret.
				}else if($reg_model->ValidateBday($reg_view->GetRegBday()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_BDAY_WRONG_INPUT);
				// Kontrollerar om kön-val är tom eller inte.
				}else if($reg_model->ValidateSex($reg_view->GetRegSex()) == false){	
					$reg_message = $reg_view->GetMessage(RegistrationView::REG_SEX_WRONG_INPUT);
				// Registrerar användaren om inmatningen passerar alla if-satser ovanför.			
				}else if($reg_model->DoInsert(	$reg_view->GetRegUserName(), 
												$reg_view->GetRegPassword(),
												$reg_view->GetRegMail(),
												$reg_view->GetRegBday(),
												$reg_view->GetRegSex()) == true){
					
				}				
			}
			// Skriver ut Registreringsformuläret.
			if($reg_model->IsRegistered() == true){
				return $reg_view->DoRegistrationSuccess() . $reg_model->EndSession();
			}else{
				return $reg_view->DoRegistrationBox($reg_message);
			}
		}
	}
?>